Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Computer cluster</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Computer_cluster"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Computer_cluster rootpage-Computer_cluster skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Computer cluster</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Data_cluster" class="mw-redirect" title="Data cluster">data cluster</a> or <a href="Grid_computing" title="Grid computing">grid computing</a>.</div>
<div role="note" class="hatnote navigation-not-searchable">"Cluster computing" redirects here. For the journal, see <a href="Cluster_Computing_(journal)" title="Cluster Computing (journal)">Cluster Computing (journal)</a>.</div>



<p>A <b>computer cluster</b> is a set of <a href="Computer" title="Computer">computers</a> that work together so that they can be viewed as a single system. Unlike <a href="Grid_computing" title="Grid computing">grid computers</a>, computer clusters have each <a href="Node_(networking)" title="Node (networking)">node</a> set to perform the same task, controlled and scheduled by software. The newest manifestation of cluster computing is <a href="Cloud_computing" title="Cloud computing">cloud computing</a>.
</p><p>The components of a cluster are usually connected to each other through fast <a href="Local_area_network" title="Local area network">local area networks</a>, with each <a href="Node_(networking)" title="Node (networking)">node</a> (computer used as a server) running its own instance of an <a href="Operating_system" title="Operating system">operating system</a>. In most circumstances, all of the nodes use the same hardware<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> and the same operating system, although in some setups (e.g. using <a href="Open_Source_Cluster_Application_Resources" title="Open Source Cluster Application Resources">Open Source Cluster Application Resources</a> (OSCAR)), different operating systems can be used on each computer, or different hardware.<sup id="cite_ref-pcauthority_2-0" class="reference"><a href="#cite_note-pcauthority-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Clusters are usually deployed to improve performance and availability over that of a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Computer clusters emerged as a result of the convergence of a number of computing trends including the availability of low-cost microprocessors, high-speed networks, and software for high-performance <a href="Distributed_computing" title="Distributed computing">distributed computing</a>. They have a wide range of applicability and deployment, ranging from small business clusters with a handful of nodes to some of the fastest <a href="Supercomputer" title="Supercomputer">supercomputers</a> in the world such as <a href="IBM_Sequoia" class="mw-redirect" title="IBM Sequoia">IBM's Sequoia</a>.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Prior to the advent of clusters, single-unit <a href="Fault_tolerant" class="mw-redirect" title="Fault tolerant">fault tolerant</a> <a href="Mainframes" class="mw-redirect" title="Mainframes">mainframes</a> with <a href="Triple_modular_redundancy" title="Triple modular redundancy">modular redundancy</a> were employed; but the lower upfront cost of clusters, and increased speed of network fabric has favoured the adoption of clusters. In contrast to high-reliability mainframes, clusters are cheaper to scale out, but also have increased complexity in error handling, as in clusters error modes are not opaque to running programs.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Basic_concepts">Basic concepts</h2></div>

<p>The desire to get more computing power and better reliability by orchestrating a number of low-cost <a href="Commercial_off-the-shelf" title="Commercial off-the-shelf">commercial off-the-shelf</a> computers has given rise to a variety of architectures and configurations.
</p><p>The computer clustering approach usually (but not always) connects a number of readily available computing nodes (e.g. personal computers used as servers) via a fast <a href="Local_area_network" title="Local area network">local area network</a>.<sup id="cite_ref-nbis_6-0" class="reference"><a href="#cite_note-nbis-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The activities of the computing nodes are orchestrated by "clustering middleware", a software layer that sits atop the nodes and allows the users to treat the cluster as by and large one cohesive computing unit, e.g. via a <a href="Single_system_image" title="Single system image">single system image</a> concept.<sup id="cite_ref-nbis_6-1" class="reference"><a href="#cite_note-nbis-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Computer clustering relies on a centralized management approach which makes the nodes available as orchestrated shared servers. It is distinct from other approaches such as <a href="Peer-to-peer" title="Peer-to-peer">peer-to-peer</a> or <a href="Grid_computing" title="Grid computing">grid computing</a> which also use many nodes, but with a far more <a href="Distributed_computing" title="Distributed computing">distributed nature</a>.<sup id="cite_ref-nbis_6-2" class="reference"><a href="#cite_note-nbis-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>A computer cluster may be a simple two-node system which just connects two personal computers, or may be a very fast <a href="Supercomputer" title="Supercomputer">supercomputer</a>. A basic approach to building a cluster is that of a <a href="Beowulf_(computing)" class="mw-redirect" title="Beowulf (computing)">Beowulf</a> cluster which may be built with a few personal computers to produce a cost-effective alternative to traditional <a href="High-performance_computing" title="High-performance computing">high-performance computing</a>. An early project that showed the viability of the concept was the 133-node <a href="Stone_Soupercomputer" title="Stone Soupercomputer">Stone Soupercomputer</a>.<sup id="cite_ref-sciam_7-0" class="reference"><a href="#cite_note-sciam-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> The developers used <a href="Linux" title="Linux">Linux</a>, the <a href="Parallel_Virtual_Machine" title="Parallel Virtual Machine">Parallel Virtual Machine</a> toolkit and the <a href="Message_Passing_Interface" title="Message Passing Interface">Message Passing Interface</a> library to achieve high performance at a relatively low cost.<sup id="cite_ref-extreme_8-0" class="reference"><a href="#cite_note-extreme-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>Although a cluster may consist of just a few personal computers connected by a simple network, the cluster architecture may also be used to achieve very high levels of performance. The <a href="TOP500" title="TOP500">TOP500</a> organization's semiannual list of the 500 fastest supercomputers often includes many clusters, e.g. the world's fastest machine in 2011 was the <a href="K_computer" title="K computer">K computer</a> which has a <a href="Distributed_memory" title="Distributed memory">distributed memory</a>, cluster architecture.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="History_of_computer_clusters" title="History of computer clusters">History of computer clusters</a></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="History_of_supercomputing" title="History of supercomputing">History of supercomputing</a></div>

<p>Greg Pfister has stated that clusters were not invented by any specific vendor but by customers who could not fit all their work on one computer, or needed a backup.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Pfister estimates the date as some time in the 1960s. The formal engineering basis of cluster computing as a means of doing parallel work of any sort was arguably invented by <a href="Gene_Amdahl" title="Gene Amdahl">Gene Amdahl</a> of <a href="IBM" title="IBM">IBM</a>, who in 1967 published what has come to be regarded as the seminal paper on parallel processing: <a href="Amdahl's_Law" class="mw-redirect" title="Amdahl's Law">Amdahl's Law</a>.
</p><p>The history of early computer clusters is more or less directly tied to the history of early networks, as one of the primary motivations for the development of a network was to link computing resources, creating a de facto computer cluster.
</p><p>The first production system designed as a cluster was the Burroughs <a href="B5700" class="mw-redirect" title="B5700">B5700</a> in the mid-1960s. This allowed up to four computers, each with either one or two processors, to be tightly coupled to a common disk storage subsystem in order to distribute the workload. Unlike standard multiprocessor systems, each computer could be restarted without disrupting overall operation.
</p>

<p>The first commercial loosely coupled clustering product was <a href="Datapoint" title="Datapoint">Datapoint Corporation's</a> "Attached Resource Computer" (ARC) system, developed in 1977, and using <a href="ARCnet" class="mw-redirect" title="ARCnet">ARCnet</a> as the cluster interface. Clustering per se did not really take off until <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">Digital Equipment Corporation</a> released their <a href="VAXcluster" class="mw-redirect" title="VAXcluster">VAXcluster</a> product in 1984 for the <a href="OpenVMS" title="OpenVMS">VMS</a> operating system. The ARC and VAXcluster products not only supported <a href="Parallel_computing" title="Parallel computing">parallel computing</a>, but also shared <a href="File_system" title="File system">file systems</a> and <a href="Peripheral" title="Peripheral">peripheral</a> devices. The idea was to provide the advantages of parallel processing, while maintaining data reliability and uniqueness. Two other noteworthy early commercial clusters were the <a href="Tandem_Computers" title="Tandem Computers"><i>Tandem NonStop</i></a> (a 1976 high-availability commercial product)<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> and the <i>IBM S/390 Parallel Sysplex</i> (circa 1994, primarily for business use).
</p><p>Within the same time frame, while computer clusters used parallelism outside the computer on a commodity network, <a href="Supercomputer" title="Supercomputer">supercomputers</a> began to use them within the same computer. Following the success of the <a href="CDC_6600" title="CDC 6600">CDC 6600</a> in 1964, the <a href="Cray_1" class="mw-redirect" title="Cray 1">Cray 1</a> was delivered in 1976, and introduced internal parallelism via <a href="Vector_processor" title="Vector processor">vector processing</a>.<sup id="cite_ref-Hill41_13-0" class="reference"><a href="#cite_note-Hill41-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> While early supercomputers excluded clusters and relied on <a href="Shared_memory_architecture" class="mw-redirect" title="Shared memory architecture">shared memory</a>, in time some of the fastest supercomputers (e.g. the <a href="K_computer" title="K computer">K computer</a>) relied on cluster architectures.
</p>
<div class="mw-heading mw-heading2"><h2 id="Attributes_of_clusters">Attributes of clusters</h2></div>

<p>Computer clusters may be configured for different purposes ranging from general purpose business needs such as web-service support, to computation-intensive scientific calculations. In either case, the cluster may use a <a href="High-availability_cluster" title="High-availability cluster">high-availability</a> approach. Note that the attributes described below are not exclusive and a "computer cluster" may also use a high-availability approach, etc.
</p><p>"<a href="Load_balancing_(computing)" title="Load balancing (computing)">Load-balancing</a>" clusters are configurations in which cluster-nodes share computational workload to provide better overall performance. For example, a web server cluster may assign different queries to different nodes, so the overall response time will be optimized.<sup id="cite_ref-Sloan_14-0" class="reference"><a href="#cite_note-Sloan-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> However, approaches to load-balancing may significantly differ among applications, e.g. a high-performance cluster used for scientific computations would balance load with different algorithms from a web-server cluster which may just use a simple <a href="Round-robin_scheduling" title="Round-robin scheduling">round-robin method</a> by assigning each new request to a different node.<sup id="cite_ref-Sloan_14-1" class="reference"><a href="#cite_note-Sloan-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p><p>Computer clusters are used for computation-intensive purposes, rather than handling <a href="Input/output" title="Input/output">IO-oriented</a> operations such as web service or databases.<sup id="cite_ref-VECPAR_15-0" class="reference"><a href="#cite_note-VECPAR-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> For instance, a computer cluster might support <a href="Computer_simulation" title="Computer simulation">computational simulations</a> of vehicle crashes or weather. Very tightly coupled computer clusters are designed for work that may approach "<a href="Supercomputing" class="mw-redirect" title="Supercomputing">supercomputing</a>".
</p><p>"<a href="High-availability_cluster" title="High-availability cluster">High-availability clusters</a>" (also known as <a href="Failover" title="Failover">failover</a> clusters, or HA clusters) improve the availability of the cluster approach. They operate by having redundant <a href="Node_(networking)" title="Node (networking)">nodes</a>, which are then used to provide service when system components fail. HA cluster implementations attempt to use redundancy of cluster components to eliminate <a href="Single_point_of_failure" title="Single point of failure">single points of failure</a>. There are commercial implementations of High-Availability clusters for many operating systems. The <a href="Linux-HA" title="Linux-HA">Linux-HA</a> project is one commonly used <a href="Free_software" title="Free software">free software</a> HA package for the <a href="Linux" title="Linux">Linux</a> operating system.
</p>
<div class="mw-heading mw-heading2"><h2 id="Benefits">Benefits</h2></div>
<p>Clusters are primarily designed with performance in mind, but installations are based on many other factors. Fault tolerance (<i>the ability of a system to continue operating despite a malfunctioning node</i>) enables <a href="Scalability" title="Scalability">scalability</a>, and in high-performance situations, allows for a low frequency of maintenance routines, resource consolidation (e.g., <a href="RAID" title="RAID">RAID</a>), and centralized management. Advantages include enabling data recovery in the event of a disaster and providing parallel data processing and high processing capacity.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>In terms of scalability, clusters provide this in their ability to add nodes horizontally. This means that more computers may be added to the cluster, to improve its performance, redundancy and fault tolerance. This can be an inexpensive solution for a higher performing cluster compared to scaling up a single node in the cluster. This property of computer clusters can allow for larger computational loads to be executed by a larger number of lower performing computers.
</p><p>When adding a new node to a cluster, reliability increases because the entire cluster does not need to be taken down. A single node can be taken down for maintenance, while the rest of the cluster takes on the load of that individual node.
</p><p>If you have a large number of computers clustered together, this lends itself to the use of <a href="Clustered_file_system#distributed_file_systems" title="Clustered file system">distributed file systems</a> and <a href="RAID" title="RAID">RAID</a>, both of which can increase the reliability and speed of a cluster.
</p>
<div class="mw-heading mw-heading2"><h2 id="Design_and_configuration">Design and configuration</h2></div>

<p>One of the issues in designing a cluster is how tightly coupled the individual nodes may be. For instance, a single computer job may require frequent communication among nodes: this implies that the cluster shares a dedicated network, is densely located, and probably has homogeneous nodes. The other extreme is where a computer job uses one or few nodes, and needs little or no inter-node communication, approaching <a href="Grid_computing" title="Grid computing">grid computing</a>.
</p><p>In a <a href="Beowulf_cluster" title="Beowulf cluster">Beowulf cluster</a>, the application programs never see the computational nodes (also called slave computers) but only interact with the "Master" which is a specific computer handling the scheduling and management of the slaves.<sup id="cite_ref-VECPAR_15-1" class="reference"><a href="#cite_note-VECPAR-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> In a typical implementation the Master has two network interfaces, one that communicates with the private Beowulf network for the slaves, the other for the general purpose network of the organization.<sup id="cite_ref-VECPAR_15-2" class="reference"><a href="#cite_note-VECPAR-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> The slave computers typically have their own version of the same operating system, and local memory and disk space. However, the private slave network may also have a large and shared file server that stores global persistent data, accessed by the slaves as needed.<sup id="cite_ref-VECPAR_15-3" class="reference"><a href="#cite_note-VECPAR-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>A special purpose 144-node <a href="DEGIMA_(computer_cluster)" class="mw-redirect" title="DEGIMA (computer cluster)">DEGIMA cluster</a> is tuned to running astrophysical N-body simulations using the Multiple-Walk parallel tree code, rather than general purpose scientific computations.<sup id="cite_ref-Hamada_18-0" class="reference"><a href="#cite_note-Hamada-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p><p>Due to the increasing computing power of each generation of <a href="Game_console" class="mw-redirect" title="Game console">game consoles</a>, a novel use has emerged where they are repurposed into <a href="High-performance_computing" title="High-performance computing">High-performance computing</a> (HPC) clusters. Some examples of game console clusters are <a href="PlayStation_3_cluster" title="PlayStation 3 cluster">Sony PlayStation clusters</a> and <a href="Microsoft" title="Microsoft">Microsoft</a> <a href="Xbox_(console)" title="Xbox (console)">Xbox</a> clusters. Another example of consumer game product is the <a href="Nvidia_Tesla_Personal_Supercomputer" title="Nvidia Tesla Personal Supercomputer">Nvidia Tesla Personal Supercomputer</a> workstation, which uses multiple graphics accelerator processor chips. Besides game consoles, high-end graphics cards too can be used instead. The use of graphics cards (or rather their GPU's) to do calculations for grid computing is vastly more economical than using CPU's, despite being less precise. However, when using double-precision values, they become as precise to work with as CPU's and are still much less costly (purchase cost).<sup id="cite_ref-pcauthority_2-1" class="reference"><a href="#cite_note-pcauthority-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Computer clusters have historically run on separate physical <a href="Computer" title="Computer">computers</a> with the same <a href="Operating_system" title="Operating system">operating system</a>. With the advent of <a href="Virtualization" title="Virtualization">virtualization</a>, the cluster nodes may run on separate physical computers with different operating systems which are painted above with a virtual layer to look similar.<sup id="cite_ref-linuxjournal_19-0" class="reference"><a href="#cite_note-linuxjournal-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> The cluster may also be virtualized on various configurations as maintenance takes place; an example implementation is <a href="Xen" title="Xen">Xen</a> as the virtualization manager with <a href="Linux-HA" title="Linux-HA">Linux-HA</a>.<sup id="cite_ref-linuxjournal_19-1" class="reference"><a href="#cite_note-linuxjournal-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Data_sharing_and_communication">Data sharing and communication</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Data_sharing">Data sharing</h3></div>

<p>As the computer clusters were appearing during the 1980s, so were <a href="Supercomputer" title="Supercomputer">supercomputers</a>. One of the elements that distinguished the three classes at that time was that the early supercomputers relied on <a href="Shared_memory_architecture" class="mw-redirect" title="Shared memory architecture">shared memory</a>. Clusters do not typically use physically shared memory, while many supercomputer architectures have also abandoned it.
</p><p>However, the use of a <a href="Clustered_file_system" title="Clustered file system">clustered file system</a> is essential in modern computer clusters. Examples include the <a href="IBM_General_Parallel_File_System" class="mw-redirect" title="IBM General Parallel File System">IBM General Parallel File System</a>, Microsoft's <a href="Cluster_Shared_Volumes" title="Cluster Shared Volumes">Cluster Shared Volumes</a> or the <a href="Oracle_Cluster_File_System" class="mw-redirect" title="Oracle Cluster File System">Oracle Cluster File System</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Message_passing_and_communication">Message passing and communication</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Message_passing_in_computer_clusters" title="Message passing in computer clusters">Message passing in computer clusters</a></div>
<p>Two widely used approaches for communication between cluster nodes are MPI (<a href="Message_Passing_Interface" title="Message Passing Interface">Message Passing Interface</a>) and PVM (<a href="Parallel_Virtual_Machine" title="Parallel Virtual Machine">Parallel Virtual Machine</a>).<sup id="cite_ref-Gehrke_20-0" class="reference"><a href="#cite_note-Gehrke-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>PVM was developed at the <a href="Oak_Ridge_National_Laboratory" title="Oak Ridge National Laboratory">Oak Ridge National Laboratory</a> around 1989 before MPI was available. PVM must be directly installed on every cluster node and provides a set of software libraries that paint the node as a "parallel virtual machine". PVM provides a run-time environment for message-passing, task and resource management, and fault notification. PVM can be used by user programs written in C, C++, or Fortran, etc.<sup id="cite_ref-Gehrke_20-1" class="reference"><a href="#cite_note-Gehrke-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Prabhu_21-0" class="reference"><a href="#cite_note-Prabhu-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p><p>MPI emerged in the early 1990s out of discussions among 40 organizations. The initial effort was supported by <a href="DARPA" title="DARPA">ARPA</a> and <a href="National_Science_Foundation" title="National Science Foundation">National Science Foundation</a>. Rather than starting anew, the design of MPI drew on various features available in commercial systems of the time. The MPI specifications then gave rise to specific implementations. MPI implementations typically use <a href="TCP/IP" class="mw-redirect" title="TCP/IP">TCP/IP</a> and socket connections.<sup id="cite_ref-Gehrke_20-2" class="reference"><a href="#cite_note-Gehrke-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> MPI is now a widely available communications model that enables parallel programs to be written in languages such as <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Fortran" title="Fortran">Fortran</a>, <a href="Python_(programming_language)" title="Python (programming language)">Python</a>, etc.<sup id="cite_ref-Prabhu_21-1" class="reference"><a href="#cite_note-Prabhu-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Thus, unlike PVM which provides a concrete implementation, MPI is a specification which has been implemented in systems such as <a href="MPICH" title="MPICH">MPICH</a> and <a href="Open_MPI" title="Open MPI">Open MPI</a>.<sup id="cite_ref-Prabhu_21-2" class="reference"><a href="#cite_note-Prabhu-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Gropp_22-0" class="reference"><a href="#cite_note-Gropp-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Cluster_management">Cluster management</h2></div>


<p>One of the challenges in the use of a computer cluster is the cost of administrating it which can at times be as high as the cost of administrating N independent machines, if the cluster has N nodes.<sup id="cite_ref-patter641_23-0" class="reference"><a href="#cite_note-patter641-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> In some cases this provides an advantage to <a href="Shared_memory_architecture" class="mw-redirect" title="Shared memory architecture">shared memory architectures</a> with lower administration costs.<sup id="cite_ref-patter641_23-1" class="reference"><a href="#cite_note-patter641-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> This has also made <a href="Virtual_machine" title="Virtual machine">virtual machines</a> popular, due to the ease of administration.<sup id="cite_ref-patter641_23-2" class="reference"><a href="#cite_note-patter641-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Task_scheduling">Task scheduling</h3></div>
<p>When a large multi-user cluster needs to access very large amounts of data, <a href="Task_scheduling" class="mw-redirect" title="Task scheduling">task scheduling</a> becomes a challenge. In a heterogeneous CPU-GPU cluster with a complex application environment, the performance of each job depends on the characteristics of the underlying cluster. Therefore, mapping tasks onto CPU cores and GPU devices provides significant challenges.<sup id="cite_ref-Shira_24-0" class="reference"><a href="#cite_note-Shira-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> This is an area of ongoing research; algorithms that combine and extend <a href="MapReduce" title="MapReduce">MapReduce</a> and <a href="Apache_Hadoop" title="Apache Hadoop">Hadoop</a> have been proposed and studied.<sup id="cite_ref-Shira_24-1" class="reference"><a href="#cite_note-Shira-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Node_failure_management">Node failure management</h3></div>
<p>When a node in a cluster fails, strategies such as "<a href="Fencing_(computing)" title="Fencing (computing)">fencing</a>" may be employed to keep the rest of the system operational.<sup id="cite_ref-ARob_25-0" class="reference"><a href="#cite_note-ARob-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-suncl_26-0" class="reference"><a href="#cite_note-suncl-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> Fencing is the process of isolating a node or protecting shared resources when a node appears to be malfunctioning. There are two classes of fencing methods; one disables a node itself, and the other disallows access to resources such as shared disks.<sup id="cite_ref-ARob_25-1" class="reference"><a href="#cite_note-ARob-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p><p>The <a href="STONITH" class="mw-redirect" title="STONITH">STONITH</a> method stands for "Shoot The Other Node In The Head", meaning that the suspected node is disabled or powered off. For instance, <i>power fencing</i> uses a power controller to turn off an inoperable node.<sup id="cite_ref-ARob_25-2" class="reference"><a href="#cite_note-ARob-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p><p>The <i>resources fencing</i> approach disallows access to resources without powering off the node. This may include <i>persistent reservation fencing</i> via the <a href="SCSI3" class="mw-redirect" title="SCSI3">SCSI3</a>, fibre channel fencing to disable the <a href="Fibre_channel" class="mw-redirect" title="Fibre channel">fibre channel</a> port, or <a href="Global_network_block_device" class="mw-redirect" title="Global network block device">global network block device</a> (GNBD) fencing to disable access to the GNBD server.
</p>
<div class="mw-heading mw-heading2"><h2 id="Software_development_and_administration">Software development and administration</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Parallel_programming">Parallel programming</h3></div>
<p>Load balancing clusters such as web servers use cluster architectures to support a large number of users and typically each user request is routed to a specific node, achieving <a href="Task_parallelism" title="Task parallelism">task parallelism</a> without multi-node cooperation, given that the main goal of the system is providing rapid user access to shared data. However, "computer clusters" which perform complex computations for a small number of users need to take advantage of the parallel processing capabilities of the cluster and partition "the same computation" among several nodes.<sup id="cite_ref-Blum_27-0" class="reference"><a href="#cite_note-Blum-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Automatic_parallelization" title="Automatic parallelization">Automatic parallelization</a> of programs remains a technical challenge, but <a href="Parallel_programming_model" title="Parallel programming model">parallel programming models</a> can be used to effectuate a higher <a href="Degree_of_parallelism" title="Degree of parallelism">degree of parallelism</a> via the simultaneous execution of separate portions of a program on different processors.<sup id="cite_ref-Blum_27-1" class="reference"><a href="#cite_note-Blum-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Debugging_and_monitoring">Debugging and monitoring</h3></div>
<p>Developing and debugging parallel programs on a cluster requires parallel language primitives and suitable tools such as those discussed by the <i>High Performance Debugging Forum</i> (HPDF) which resulted in the HPD specifications.<sup id="cite_ref-Prabhu_21-3" class="reference"><a href="#cite_note-Prabhu-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-iosp_29-0" class="reference"><a href="#cite_note-iosp-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> Tools such as <a href="Rogue_Wave_Software" title="Rogue Wave Software">TotalView</a> were then developed to debug parallel implementations on computer clusters which use <a href="Message_Passing_Interface" title="Message Passing Interface">Message Passing Interface</a> (MPI) or <a href="Parallel_Virtual_Machine" title="Parallel Virtual Machine">Parallel Virtual Machine</a> (PVM) for message passing.
</p><p>The <a href="University_of_California%2C_Berkeley" title="University of California, Berkeley">University of California, Berkeley</a> <i>Network of Workstations</i> (NOW) system gathers cluster data and stores them in a database, while a system such as PARMON, developed in India, allows visually observing and managing large clusters.<sup id="cite_ref-Prabhu_21-4" class="reference"><a href="#cite_note-Prabhu-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Application_checkpointing" title="Application checkpointing">Application checkpointing</a> can be used to restore a given state of the system when a node fails during a long multi-node computation.<sup id="cite_ref-sloot_30-0" class="reference"><a href="#cite_note-sloot-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> This is essential in large clusters, given that as the number of nodes increases, so does the likelihood of node failure under heavy computational loads. Checkpointing can restore the system to a stable state so that processing can resume without needing to recompute results.<sup id="cite_ref-sloot_30-1" class="reference"><a href="#cite_note-sloot-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementations">Implementations</h2></div>
<p>The Linux world supports various cluster software; for application clustering, there is <a href="Distcc" title="Distcc">distcc</a>, and <a href="MPICH" title="MPICH">MPICH</a>. <a href="Linux_Virtual_Server" title="Linux Virtual Server">Linux Virtual Server</a>, <a href="Linux-HA" title="Linux-HA">Linux-HA</a> – director-based clusters that allow incoming requests for services to be distributed across multiple cluster nodes. <a href="MOSIX" title="MOSIX">MOSIX</a>, <a href="LinuxPMI" class="mw-redirect" title="LinuxPMI">LinuxPMI</a>, <a href="Kerrighed" title="Kerrighed">Kerrighed</a>, <a href="OpenSSI" title="OpenSSI">OpenSSI</a> are full-blown clusters integrated into the <a href="Kernel_(computer_science)" class="mw-redirect" title="Kernel (computer science)">kernel</a> that provide for automatic process migration among homogeneous nodes. <a href="OpenSSI" title="OpenSSI">OpenSSI</a>, <a href="OpenMosix" title="OpenMosix">openMosix</a> and <a href="Kerrighed" title="Kerrighed">Kerrighed</a> are <a href="Single-system_image" class="mw-redirect" title="Single-system image">single-system image</a> implementations.
</p><p><a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> computer cluster Server 2003 based on the <a href="Windows_Server" title="Windows Server">Windows Server</a> platform provides pieces for high-performance computing like the job scheduler, MSMPI library and management tools.
</p><p><a href="GLite" title="GLite">gLite</a> is a set of middleware technologies created by the <a href="Enabling_Grids_for_E-sciencE" class="mw-redirect" title="Enabling Grids for E-sciencE">Enabling Grids for E-sciencE</a> (EGEE) project.
</p><p><a href="Simple_Linux_Utility_for_Resource_Management" class="mw-redirect" title="Simple Linux Utility for Resource Management">slurm</a> is also used to schedule and manage some of the largest supercomputer clusters (see top500 list).
</p>
<div class="mw-heading mw-heading2"><h2 id="Other_approaches">Other approaches</h2></div>
<p>Although most computer clusters are permanent fixtures, attempts at <a href="Flash_mob_computing" title="Flash mob computing">flash mob computing</a> have been made to build short-lived clusters for specific computations. However, larger-scale <a href="Volunteer_computing" title="Volunteer computing">volunteer computing</a> systems such as <a href="BOINC" class="mw-redirect" title="BOINC">BOINC</a>-based systems have had more followers.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<table cellspacing="5" cellpadding="5" border="0" width="60%">

<tbody><tr>
<td valign="top" width="30%">
<p><i>Basic concepts</i>
</p>
<dl><dd><ul><li><a href="Clustered_file_system" title="Clustered file system">Clustered file system</a></li>
<li><a href="Heartbeat_private_network" class="mw-redirect" title="Heartbeat private network">Heartbeat private network</a></li>
<li><a href="High-availability_cluster" title="High-availability cluster">High-availability cluster</a></li>
<li><a href="Single_system_image" title="Single system image">Single system image</a></li>
<li><a href="Symmetric_multiprocessing" title="Symmetric multiprocessing">Symmetric multiprocessing</a></li></ul></dd></dl>
<p><i>Distributed computing</i>
</p>
<dl><dd><ul><li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Distributed_data_store" title="Distributed data store">Distributed data store</a></li>
<li><a href="Distributed_operating_system" title="Distributed operating system">Distributed operating system</a></li>
<li><a href="Distributed_shared_memory" title="Distributed shared memory">Distributed shared memory</a></li></ul></dd></dl>
</td>
<td valign="top" width="30%">
<p><i>Specific systems</i>
</p>
<dl><dd><ul><li><a href="DEGIMA_(computer_cluster)" class="mw-redirect" title="DEGIMA (computer cluster)">DEGIMA (computer cluster)</a></li>
<li><a href="K_computer" title="K computer">K computer</a></li>
<li><a href="Microsoft_Cluster_Server" title="Microsoft Cluster Server">Microsoft Cluster Server</a></li>
<li><a href="Red_Hat_Cluster_Suite" title="Red Hat Cluster Suite">Red Hat Cluster Suite</a></li>
<li><a href="Rocks_Cluster_Distribution" title="Rocks Cluster Distribution">Rocks Cluster Distribution</a></li>
<li><a href="Solaris_Cluster" title="Solaris Cluster">Solaris Cluster</a></li>
<li><a href="Veritas_Cluster_Server" title="Veritas Cluster Server">Veritas Cluster Server</a></li>
<li><a href="Beowulf_cluster" title="Beowulf cluster">Beowulf cluster</a></li></ul></dd></dl>
<p><i>Computer farms</i>
</p>
<dl><dd><ul><li><a href="Compile_farm" title="Compile farm">Compile farm</a></li>
<li><a href="Render_farm" title="Render farm">Render farm</a></li>
<li><a href="Server_farm" title="Server farm">Server farm</a></li></ul></dd></dl>
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/9723040/what-is-the-difference-between-cloud-grid-and-cluster">"Cluster vs grid computing"</a>. <i><a href="Stack_Overflow" title="Stack Overflow">Stack Overflow</a></i>.</cite></span>
</li>
<li id="cite_note-pcauthority-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-pcauthority_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-pcauthority_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGraham-Smith2012" class="citation web cs1">Graham-Smith, Darien (29 June 2012). <a rel="nofollow" class="external text" href="http://www.pcauthority.com.au/Feature/306972,weekend-project-build-your-own-supercomputer.aspx">"Weekend Project: Build your own supercomputer"</a>. <i>PC &amp; Tech Authority</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2 June</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFBaderPennington2001" class="citation web cs1"><a href="David_Bader_(computer_scientist)" title="David Bader (computer scientist)">Bader, David</a>; Pennington, Robert (May 2001). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20071221011621/http://www.cc.gatech.edu/~bader/papers/ijhpca.html">"Cluster Computing: Applications"</a>. <a href="Georgia_Institute_of_Technology_College_of_Computing" title="Georgia Institute of Technology College of Computing">Georgia Tech College of Computing</a>. Archived from <a rel="nofollow" class="external text" href="http://www.cc.gatech.edu/~bader/papers/ijhpca.html">the original</a> on 2007-12-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-02-28</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.telegraph.co.uk/technology/9338651/Nuclear-weapons-supercomputer-reclaims-world-speed-record-for-US.html">"Nuclear weapons supercomputer reclaims world speed record for US"</a></span>. The Telegraph. 18 Jun 2012. <a rel="nofollow" class="external text" href="https://ghostarchive.org/archive/20220112/https://www.telegraph.co.uk/technology/9338651/Nuclear-weapons-supercomputer-reclaims-world-speed-record-for-US.html">Archived</a> from the original on 2022-01-12<span class="reference-accessdate">. Retrieved <span class="nowrap">18 Jun</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFGrayRueter1993" class="citation book cs1">Gray, Jim; Rueter, Andreas (1993). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/transactionproce0000gray"><i>Transaction processing&nbsp;: concepts and techniques</i></a></span>. Morgan Kaufmann Publishers. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1558601901</bdi>.</cite></span>
</li>
<li id="cite_note-nbis-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-nbis_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-nbis_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-nbis_6-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFEnokidoBarolliTakizawa2007" class="citation conference cs1">Enokido, Tomoya; Barolli, Leonhard; Takizawa, Makoto (23 August 2007). <i>Network-Based Information Systems: First International Conference, NBIS 2007</i>. p.&nbsp;375. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-540-74572-3</bdi>.</cite></span>
</li>
<li id="cite_note-sciam-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-sciam_7-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilliam_W._Hargrove,_Forrest_M._Hoffman_and_Thomas_Sterling2001" class="citation news cs1">William W. Hargrove, Forrest M. Hoffman and <a href="Thomas_Sterling_(computing)" title="Thomas Sterling (computing)">Thomas Sterling</a> (August 16, 2001). <a rel="nofollow" class="external text" href="http://www.sciam.com/article.cfm?id=the-do-it-yourself-superc">"The Do-It-Yourself Supercomputer"</a>. <i><a href="Scientific_American" title="Scientific American">Scientific American</a></i>. Vol.&nbsp;265, no.&nbsp;2. pp.&nbsp;<span class="nowrap">72–</span>79<span class="reference-accessdate">. Retrieved <span class="nowrap">October 18,</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-extreme-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-extreme_8-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHargroveHoffman1999" class="citation news cs1">Hargrove, William W.; Hoffman, Forrest M. (1999). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111018122713/http://climate.ornl.gov/~forrest/linux-magazine-1999/">"Cluster Computing: Linux Taken to the Extreme"</a>. <i>Linux Magazine</i>. Archived from <a rel="nofollow" class="external text" href="http://climate.ornl.gov/~forrest/linux-magazine-1999/">the original</a> on October 18, 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">October 18,</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFYokokawa2011" class="citation conference cs1">Yokokawa, Mitsuo; et&nbsp;al. (1–3 August 2011). <i>The K computer: Japanese next-generation supercomputer development project</i>. International Symposium on Low Power Electronics and Design (ISLPED). pp.&nbsp;<span class="nowrap">371–</span>372. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FISLPED.2011.5993668">10.1109/ISLPED.2011.5993668</a>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFPfister1998" class="citation book cs1">Pfister, Gregory (1998). <a rel="nofollow" class="external text" href="https://archive.org/details/insearchofcluste00pfis/page/36"><i>In Search of Clusters</i></a> (2nd&nbsp;ed.). Upper Saddle River, NJ: Prentice Hall PTR. p.&nbsp;<a rel="nofollow" class="external text" href="https://archive.org/details/insearchofcluste00pfis/page/36">36</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-899709-0</bdi>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFKatzman1982" class="citation book cs1">Katzman, James A. (1982). "Chapter 29, The Tandem 16: A Fault-Tolerant Computing System". In Siewiorek, Donald P. (ed.). <i>Computer Structure: Principles and Examples</i>. U.S.A.: McGraw-Hill Book Company. pp.&nbsp;<span class="nowrap">470–</span>485.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.fundinguniverse.com/company-histories/tandem-computers-inc-history/">"History of TANDEM COMPUTERS, INC. – FundingUniverse"</a>. <i>www.fundinguniverse.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-03-01</span></span>.</cite></span>
</li>
<li id="cite_note-Hill41-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hill41_13-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHillJouppiSohi1999" class="citation book cs1">Hill, Mark Donald; <a href="Norman_Jouppi" title="Norman Jouppi">Jouppi, Norman Paul</a>; Sohi, Gurindar (1999). <i>Readings in computer architecture</i>. Gulf Professional. pp.&nbsp;<span class="nowrap">41–</span>48. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-55860-539-8</bdi>.</cite></span>
</li>
<li id="cite_note-Sloan-14"><span class="mw-cite-backlink">^ <a href="#cite_ref-Sloan_14-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Sloan_14-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSloan2004" class="citation book cs1">Sloan, Joseph D. (2004). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/highperformancel0000sloa"><i>High Performance Linux Clusters</i></a></span>. "O'Reilly Media, Inc.". <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-596-00570-2</bdi>.</cite></span>
</li>
<li id="cite_note-VECPAR-15"><span class="mw-cite-backlink">^ <a href="#cite_ref-VECPAR_15-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-VECPAR_15-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-VECPAR_15-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-VECPAR_15-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFDaydéDongarra2005" class="citation book cs1">Daydé, Michel; Dongarra, Jack (2005). <i>High Performance Computing for Computational Science – VECPAR 2004</i>. Springer. pp.&nbsp;<span class="nowrap">120–</span>121. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-540-25424-9</bdi>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160429022854/http://www-03.ibm.com/systems/clusters/benefits.html">"IBM Cluster System&nbsp;: Benefits"</a>. <a href="IBM" title="IBM">IBM</a>. Archived from <a rel="nofollow" class="external text" href="http://www-03.ibm.com/systems/clusters/benefits.html">the original</a> on 29 April 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">8 September</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160422092651/https://technet.microsoft.com/en-us/library/cc778629%28v%3Dws.10%29.aspx">"Evaluating the Benefits of Clustering"</a>. <a href="Microsoft" title="Microsoft">Microsoft</a>. 28 March 2003. Archived from <a rel="nofollow" class="external text" href="https://technet.microsoft.com/en-us/library/cc778629(v=ws.10).aspx">the original</a> on 22 April 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">8 September</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-Hamada-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-Hamada_18-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHamada2009" class="citation journal cs1">Hamada, Tsuyoshi; et&nbsp;al. (2009). "A novel multiple-walk parallel algorithm for the Barnes–Hut treecode on GPUs – towards cost effective, high performance N-body simulation". <i>Computer Science – Research and Development</i>. <b>24</b> (<span class="nowrap">1–</span>2): <span class="nowrap">21–</span>31. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs00450-009-0089-1">10.1007/s00450-009-0089-1</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:31071570">31071570</a>.</cite></span>
</li>
<li id="cite_note-linuxjournal-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-linuxjournal_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-linuxjournal_19-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMauer2006" class="citation web cs1">Mauer, Ryan (12 Jan 2006). <a rel="nofollow" class="external text" href="http://www.linuxjournal.com/article/8812">"Xen Virtualization and Linux Clustering, Part 1"</a>. <i>Linux Journal</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2 Jun</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-Gehrke-20"><span class="mw-cite-backlink">^ <a href="#cite_ref-Gehrke_20-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Gehrke_20-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Gehrke_20-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMilicchioGehrke2007" class="citation book cs1">Milicchio, Franco; Gehrke, Wolfgang Alexander (2007). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=_HtHG2Ca5AEC"><i>Distributed services with OpenAFS: for enterprise and education</i></a>. Springer. pp.&nbsp;<span class="nowrap">339–</span>341. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9783540366348</bdi>.</cite></span>
</li>
<li id="cite_note-Prabhu-21"><span class="mw-cite-backlink">^ <a href="#cite_ref-Prabhu_21-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Prabhu_21-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Prabhu_21-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Prabhu_21-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Prabhu_21-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPrabhu2008" class="citation book cs1">Prabhu, C.S.R. (2008). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=evcgB7Qlix4C"><i>Grid and Cluster Computing</i></a>. PHI Learning Pvt. pp.&nbsp;<span class="nowrap">109–</span>112. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-8120334281</bdi>.</cite></span>
</li>
<li id="cite_note-Gropp-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-Gropp_22-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGroppLuskSkjellum1996" class="citation journal cs1">Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). "A High-Performance, Portable Implementation of the MPI Message Passing Interface". <i>Parallel Computing</i>. <b>22</b> (6): <span class="nowrap">789–</span>828. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.9485">10.1.1.102.9485</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0167-8191%2896%2900024-5">10.1016/0167-8191(96)00024-5</a>.</cite></span>
</li>
<li id="cite_note-patter641-23"><span class="mw-cite-backlink">^ <a href="#cite_ref-patter641_23-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-patter641_23-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-patter641_23-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPattersonHennessy2011" class="citation book cs1">Patterson, David A.; Hennessy, John L. (2011). <i>Computer Organization and Design</i>. Elsevier. pp.&nbsp;<span class="nowrap">641–</span>642. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-12-374750-1</bdi>.</cite></span>
</li>
<li id="cite_note-Shira-24"><span class="mw-cite-backlink">^ <a href="#cite_ref-Shira_24-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Shira_24-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFK._Shirahata2010" class="citation conference cs1">K. Shirahata; et&nbsp;al. (30 Nov – 3 Dec 2010). <i>Hybrid Map Task Scheduling for GPU-Based Heterogeneous Clusters</i>. Cloud Computing Technology and Science (CloudCom). pp.&nbsp;<span class="nowrap">733–</span>740. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FCloudCom.2010.55">10.1109/CloudCom.2010.55</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4244-9405-7</bdi>.</cite></span>
</li>
<li id="cite_note-ARob-25"><span class="mw-cite-backlink">^ <a href="#cite_ref-ARob_25-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ARob_25-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-ARob_25-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210105195318/https://mirrors.sinuspl.net/www.linux-ha.org/heartbeat/ResourceFencing_Stonith.pdf">"Alan Robertson Resource fencing using STONITH"</a> <span class="cs1-format">(PDF)</span>. <i>IBM Linux Research Center, 2010</i>. Archived from <a rel="nofollow" class="external text" href="https://mirrors.sinuspl.net/www.linux-ha.org/heartbeat/ResourceFencing_Stonith.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2021-01-05.</cite></span>
</li>
<li id="cite_note-suncl-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-suncl_26-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFVargasBiancoDeeths2001" class="citation book cs1">Vargas, Enrique; Bianco, Joseph; Deeths, David (2001). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=oRjWAZS5iZMC"><i>Sun Cluster environment: Sun Cluster 2.2</i></a>. Prentice Hall Professional. p.&nbsp;58. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9780130418708</bdi>.</cite></span>
</li>
<li id="cite_note-Blum-27"><span class="mw-cite-backlink">^ <a href="#cite_ref-Blum_27-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Blum_27-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFAhoBlum2011" class="citation book cs1">Aho, Alfred V.; Blum, Edward K. (2011). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=S7QU9RRLYIYC"><i>Computer Science: The Hardware, Software and Heart of It</i></a>. Springer. pp.&nbsp;<span class="nowrap">156–</span>166. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4614-1167-3</bdi>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite id="CITEREFRauberRünger2010" class="citation book cs1">Rauber, Thomas; Rünger, Gudula (2010). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=wWogxOmA3wMC"><i>Parallel Programming: For Multicore and Cluster Systems</i></a>. Springer. pp.&nbsp;<span class="nowrap">94–</span>95. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-642-04817-3</bdi>.</cite></span>
</li>
<li id="cite_note-iosp-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-iosp_29-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFrancioniPancake2000" class="citation journal cs1">Francioni, Joan M.; <a href="Cherri_M._Pancake" title="Cherri M. Pancake">Pancake, Cherri M.</a> (April 2000). <a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2000%2F971291">"A Debugging Standard for High-performance computing"</a>. <i>Scientific Programming</i>. <b>8</b> (2). <a href="Amsterdam" title="Amsterdam">Amsterdam</a>, <a href="Netherlands" title="Netherlands">Netherlands</a>: IOS Press: <span class="nowrap">95–</span>108. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2000%2F971291">10.1155/2000/971291</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1058-9244">1058-9244</a>.</cite></span>
</li>
<li id="cite_note-sloot-30"><span class="mw-cite-backlink">^ <a href="#cite_ref-sloot_30-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sloot_30-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSloot2003" class="citation conference cs1">Sloot, Peter, ed. (2003). <i>Computational Science: ICCS 2003: International Conference</i>. pp.&nbsp;<span class="nowrap">291–</span>292. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>3-540-40195-4</bdi>.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFBaker2001" class="citation arxiv cs1">Baker, Mark; et&nbsp;al. (11 Jan 2001). "Cluster Computing White Paper". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/cs/0004014">cs/0004014</a></span>.</cite></li>
<li><cite id="CITEREFMarcusStern2000" class="citation book cs1">Marcus, Evan; Stern, Hal (2000-02-14). <a rel="nofollow" class="external text" href="https://archive.org/details/blueprintsforhig00marc"><i>Blueprints for High Availability: Designing Resilient Distributed Systems</i></a>. John Wiley &amp; Sons. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-471-35601-1</bdi>.</cite></li>
<li><cite id="CITEREFPfister1998" class="citation book cs1">Pfister, Greg (1998). <a rel="nofollow" class="external text" href="https://archive.org/details/insearchofcluste00pfis"><i>In Search of Clusters</i></a>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-899709-0</bdi>.</cite></li>
<li><cite id="CITEREFBuyya1999" class="citation book cs1">Buyya, Rajkumar, ed. (1999). <i>High Performance Cluster Computing: Architectures and Systems</i>. Vol.&nbsp;1. NJ, USA: Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-013784-5</bdi>.</cite></li>
<li><cite id="CITEREFBuyya1999" class="citation book cs1">Buyya, Rajkumar, ed. (1999). <i>High Performance Cluster Computing: Architectures and Systems</i>. Vol.&nbsp;2. NJ, USA: Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-13-013785-2</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */


.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */


@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}


/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Clusters_(computing)" class="extiw external" title="commons:Category:Clusters (computing)">Clusters (computing)</a></span>.</div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20190219183441/https://www.ieeetcsc.org/">IEEE Technical Committee on Scalable Computing (TCSC)</a></li>
<li><a rel="nofollow" class="external text" href="https://archive.today/20130103192843/http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.rsct.doc/rsctbooks.html">Reliable Scalable Cluster Technology, IBM</a></li>
<li><a rel="nofollow" class="external text" href="https://www.ibm.com/developerworks/wikis/display/tivoli/Tivoli+System+Automation">Tivoli System Automation Wiki</a></li>
<li><a rel="nofollow" class="external text" href="https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43438.pdf">Large-scale cluster management at Google with Borg</a>, April 2015, by Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune and John Wilkes</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Parallel_computing346" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Parallel_computing346" style="font-size:114%;margin:0 4em"><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">General</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></li>
<li><a href="Parallel_algorithm" title="Parallel algorithm">Parallel algorithm</a></li>
<li><a href="Massively_parallel" title="Massively parallel">Massively parallel</a></li>
<li><a href="Cloud_computing" title="Cloud computing">Cloud computing</a></li>
<li><a href="High-performance_computing" title="High-performance computing">High-performance computing</a></li>
<li><a href="Multiprocessing" title="Multiprocessing">Multiprocessing</a></li>
<li><a href="Manycore_processor" title="Manycore processor">Manycore processor</a></li>
<li><a href="General-purpose_computing_on_graphics_processing_units" title="General-purpose computing on graphics processing units">GPGPU</a></li>
<li><a href="Computer_network" title="Computer network">Computer network</a></li>
<li><a href="Systolic_array" title="Systolic array">Systolic array</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Levels</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bit-level_parallelism" title="Bit-level parallelism">Bit</a></li>
<li><a href="Instruction-level_parallelism" title="Instruction-level parallelism">Instruction</a></li>
<li><a href="Task_parallelism" title="Task parallelism">Thread</a></li>
<li><a href="Task_parallelism" title="Task parallelism">Task</a></li>
<li><a href="Data_parallelism" title="Data parallelism">Data</a></li>
<li><a href="Memory-level_parallelism" title="Memory-level parallelism">Memory</a></li>
<li><a href="Loop-level_parallelism" title="Loop-level parallelism">Loop</a></li>
<li><a href="Pipeline_(computing)" title="Pipeline (computing)">Pipeline</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Multithreading_(computer_architecture)" title="Multithreading (computer architecture)">Multithreading</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Temporal_multithreading" title="Temporal multithreading">Temporal</a></li>
<li><a href="Simultaneous_multithreading" title="Simultaneous multithreading">Simultaneous</a> (SMT)</li>
<li><a href="Simultaneous_and_heterogeneous_multithreading" title="Simultaneous and heterogeneous multithreading">Simultaneous and heterogenous</a></li>
<li><a href="Speculative_multithreading" title="Speculative multithreading">Speculative</a> (SpMT)</li>
<li><a href="Preemption_(computing)" title="Preemption (computing)">Preemptive</a></li>
<li><a href="Computer_multitasking#Cooperative_multitasking" title="Computer multitasking">Cooperative</a></li>
<li><a href="Bulldozer_(microarchitecture)#Bulldozer_core" title="Bulldozer (microarchitecture)">Clustered multi-thread</a> (CMT)</li>
<li><a href="Hardware_scout" title="Hardware scout">Hardware scout</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Theory</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Parallel_RAM" title="Parallel RAM">PRAM model</a></li>
<li><a href="Parallel_external_memory" title="Parallel external memory">PEM model</a></li>
<li><a href="Analysis_of_parallel_algorithms" title="Analysis of parallel algorithms">Analysis of parallel algorithms</a></li>
<li><a href="Amdahl's_law" title="Amdahl's law">Amdahl's law</a></li>
<li><a href="Gustafson's_law" title="Gustafson's law">Gustafson's law</a></li>
<li><a href="Cost_efficiency" title="Cost efficiency">Cost efficiency</a></li>
<li><a href="Karp%E2%80%93Flatt_metric" title="Karp–Flatt metric">Karp–Flatt metric</a></li>
<li><a href="Parallel_slowdown" title="Parallel slowdown">Slowdown</a></li>
<li><a href="Speedup" title="Speedup">Speedup</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Elements</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Process_(computing)" title="Process (computing)">Process</a></li>
<li><a href="Thread_(computing)" title="Thread (computing)">Thread</a></li>
<li><a href="Fiber_(computer_science)" title="Fiber (computer science)">Fiber</a></li>
<li><a href="Instruction_window" title="Instruction window">Instruction window</a></li>
<li><a href="Array_(data_structure)" title="Array (data structure)">Array</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Coordination</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Multiprocessing" title="Multiprocessing">Multiprocessing</a></li>
<li><a href="Memory_coherence" title="Memory coherence">Memory coherence</a></li>
<li><a href="Cache_coherence" title="Cache coherence">Cache coherence</a></li>
<li><a href="Cache_invalidation" title="Cache invalidation">Cache invalidation</a></li>
<li><a href="Barrier_(computer_science)" title="Barrier (computer science)">Barrier</a></li>
<li><a href="Synchronization_(computer_science)" title="Synchronization (computer science)">Synchronization</a></li>
<li><a href="Application_checkpointing" title="Application checkpointing">Application checkpointing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_programming" title="Computer programming">Programming</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Stream_processing" title="Stream processing">Stream processing</a></li>
<li><a href="Dataflow_programming" title="Dataflow programming">Dataflow programming</a></li>
<li><a href="Parallel_programming_model" title="Parallel programming model">Models</a>
<ul><li><a href="Implicit_parallelism" title="Implicit parallelism">Implicit parallelism</a></li>
<li><a href="Explicit_parallelism" title="Explicit parallelism">Explicit parallelism</a></li>
<li><a href="Concurrency_(computer_science)" title="Concurrency (computer science)">Concurrency</a></li></ul></li>
<li><a href="Non-blocking_algorithm" title="Non-blocking algorithm">Non-blocking algorithm</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flynn's_taxonomy" title="Flynn's taxonomy">Flynn's taxonomy</a>
<ul><li><a href="Single_instruction%2C_single_data" title="Single instruction, single data">SISD</a></li>
<li><a href="Single_instruction%2C_multiple_data" title="Single instruction, multiple data">SIMD</a>
<ul><li><a href="Single_instruction%2C_multiple_threads" title="Single instruction, multiple threads">Array processing</a> (SIMT)</li>
<li><a href="Flynn's_taxonomy#Pipelined_processor" title="Flynn's taxonomy">Pipelined processing</a></li>
<li><a href="Flynn's_taxonomy#Associative_processor" title="Flynn's taxonomy">Associative processing</a></li></ul></li>
<li><a href="Multiple_instruction%2C_single_data" title="Multiple instruction, single data">MISD</a></li>
<li><a href="Multiple_instruction%2C_multiple_data" title="Multiple instruction, multiple data">MIMD</a></li></ul></li>
<li><a href="Dataflow_architecture" title="Dataflow architecture">Dataflow architecture</a></li>
<li><a href="Instruction_pipelining" title="Instruction pipelining">Pipelined processor</a></li>
<li><a href="Superscalar_processor" title="Superscalar processor">Superscalar processor</a></li>
<li><a href="Vector_processor" title="Vector processor">Vector processor</a></li>
<li><a href="Multiprocessing" title="Multiprocessing">Multiprocessor</a>
<ul><li><a href="Symmetric_multiprocessing" title="Symmetric multiprocessing">symmetric</a></li>
<li><a href="Asymmetric_multiprocessing" title="Asymmetric multiprocessing">asymmetric</a></li></ul></li>
<li><a href="Semiconductor_memory" title="Semiconductor memory">Memory</a>
<ul><li><a href="Shared_memory" title="Shared memory">shared</a></li>
<li><a href="Distributed_memory" title="Distributed memory">distributed</a></li>
<li><a href="Distributed_shared_memory" title="Distributed shared memory">distributed shared</a></li>
<li><a href="Uniform_memory_access" title="Uniform memory access">UMA</a></li>
<li><a href="Non-uniform_memory_access" title="Non-uniform memory access">NUMA</a></li>
<li><a href="Cache-only_memory_architecture" title="Cache-only memory architecture">COMA</a></li></ul></li>
<li><a href="Massively_parallel" title="Massively parallel">Massively parallel</a> computer</li>
<li>
<ul><li><a href="Beowulf_cluster" title="Beowulf cluster">Beowulf cluster</a></li></ul></li>
<li><a href="Grid_computing" title="Grid computing">Grid computer</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="API" title="API">APIs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ateji_PX" title="Ateji PX">Ateji PX</a></li>
<li><a href="Boost_(C%2B%2B_libraries)" title="Boost (C++ libraries)">Boost</a></li>
<li><a href="Chapel_(programming_language)" title="Chapel (programming language)">Chapel</a></li>
<li><a href="HPX" title="HPX">HPX</a></li>
<li><a href="Charm%2B%2B" title="Charm++">Charm++</a></li>
<li><a href="Cilk" title="Cilk">Cilk</a></li>
<li><a href="Coarray_Fortran" title="Coarray Fortran">Coarray Fortran</a></li>
<li><a href="CUDA" title="CUDA">CUDA</a></li>
<li><a href="Dryad_(programming)" title="Dryad (programming)">Dryad</a></li>
<li><a href="C%2B%2B_AMP" title="C++ AMP">C++ AMP</a></li>
<li><a href="Global_Arrays" title="Global Arrays">Global Arrays</a></li>
<li><a href="GPUOpen" title="GPUOpen">GPUOpen</a></li>
<li><a href="Message_Passing_Interface" title="Message Passing Interface">MPI</a></li>
<li><a href="OpenMP" title="OpenMP">OpenMP</a></li>
<li><a href="OpenCL" title="OpenCL">OpenCL</a></li>
<li><a href="OpenHMPP" title="OpenHMPP">OpenHMPP</a></li>
<li><a href="OpenACC" title="OpenACC">OpenACC</a></li>
<li><a href="Parallel_Extensions" title="Parallel Extensions">Parallel Extensions</a></li>
<li><a href="Parallel_Virtual_Machine" title="Parallel Virtual Machine">PVM</a></li>
<li><a href="Pthreads" title="Pthreads">pthreads</a></li>
<li><a href="RaftLib" title="RaftLib">RaftLib</a></li>
<li><a href="ROCm" title="ROCm">ROCm</a></li>
<li><a href="Unified_Parallel_C" title="Unified Parallel C">UPC</a></li>
<li><a href="Threading_Building_Blocks" title="Threading Building Blocks">TBB</a></li>
<li><a href="ZPL_(programming_language)" class="mw-redirect" title="ZPL (programming language)">ZPL</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Problems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Automatic_parallelization" title="Automatic parallelization">Automatic parallelization</a></li>
<li><a href="Deadlock_(computer_science)" title="Deadlock (computer science)">Deadlock</a></li>
<li><a href="Deterministic_algorithm" title="Deterministic algorithm">Deterministic algorithm</a></li>
<li><a href="Embarrassingly_parallel" title="Embarrassingly parallel">Embarrassingly parallel</a></li>
<li><a href="Parallel_slowdown" title="Parallel slowdown">Parallel slowdown</a></li>
<li><a href="Race_condition" title="Race condition">Race condition</a></li>
<li><a href="Software_lockout" title="Software lockout">Software lockout</a></li>
<li><a href="Scalability" title="Scalability">Scalability</a></li>
<li><a href="Starvation_(computer_science)" title="Starvation (computer science)">Starvation</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span>&nbsp;Category: Parallel computing</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox390" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4038398-2">Germany</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-03" href="https://en.wikipedia.org/wiki/?title=Computer_cluster&amp;oldid=1288491243">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>